import React, { Component } from "react";
// 一切皆组件
import { Link, Route, Switch } from "react-router-dom";
// 如果项目需要使用路由，那么整个项目就需要使用BrowserRouter组件套住
// Link组件就是用来改变url地址的a标签, 相当于vue里面的router-link, 必须要有to属性
// Route组件用于渲染对应的组件，并不是整一个容器

// vue的路由默认是排他性路由，react路由默认是包容性路由
// Switch叫做分支匹配，作用就是将包容性路由转换成排他性路由
// exact属性表示的是精准匹配，只有url正好相等的时候才能显示

class Home extends Component {
  render() {
    return <div>这是home组件</div>;
  }
}

class About extends Component {
  render() {
    return <div>这是About组件</div>;
  }
}

class Mine extends Component {
  render() {
    return <div>这是Mine组件</div>;
  }
}

class App extends Component {
  render() {
    return (
      <>
        <h2>react-router-basic</h2>
        <ul>
          <li>
            <Link to="/">首页</Link>
          </li>
          <li>
            <Link to="/about">关于页</Link>
          </li>
          <li>
            <Link to="/mine">我的页</Link>
          </li>
        </ul>

        <hr />

        <Switch>
          <Route path="/" component={Home} exact></Route>
          <Route path="/about" component={About}></Route>
          <Route path="/mine" component={Mine}></Route>
        </Switch>
      </>
    );
  }
}

export default App;
